#pragma once
#include "../domain/Node.h"
#include "SurfaceContainer.h"

class SurfaceContainerNode : public Node
{
	private:
	SurfaceContainer* data;
public:
	SurfaceContainerNode();
	virtual ~SurfaceContainerNode();
	/**
	 * Gets node value
	 */
	SurfaceContainer* getNodeValue() const;
	/**
	 * Sets node value
	 */
	void setNodeValue(SurfaceContainer* value);
	/**
	 * Copy Constructor
	 */
	SurfaceContainerNode(const SurfaceContainerNode &surfaceContainerNode);
	/**
	 * Operator '='
	 */
	SurfaceContainerNode& operator=(const SurfaceContainerNode &surfaceContainerNode);
	/**
	 * Virtual clone to implement. Virtual copy constructor.
	 */
	virtual SurfaceContainerNode* clone() const;
	/**
	 * Virtual implementation of equals
	 */
	virtual bool equals(const Node& node) const;
};
